#include "MasterSlaveTIM.h"
#include "tim.h"

void PWM_SetCount(uint32_t count)
{
    __HAL_TIM_SetAutoreload(&TIM_SLAVE, 9);           // TIM4装载9, 当PWM输出10个时中断
    HAL_TIM_Base_Start_IT(&TIM_SLAVE);                // 开启从定时器计数
    HAL_TIM_PWM_Start_IT(&TIM_MASTER, TIM_CHANNEL_1); // 开启主定时器 PWM输出
}

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if (htim->Instance == TIM4)
    {
        if (__HAL_TIM_GET_FLAG(&TIM_SLAVE, TIM_FLAG_CC1) != RESET)
        {
            __HAL_TIM_CLEAR_FLAG(&TIM_SLAVE, TIM_FLAG_CC1);

            HAL_TIM_PWM_Stop_IT(&TIM_MASTER, TIM_CHANNEL_1); // 关闭PWM

            HAL_TIM_Base_Stop_IT(&TIM_SLAVE); // 关闭中断
        }
    }
}
